// map.js
// 导入地图
import qqmap from './../../../utils/qqmap'
Page({
  data: {
    latitude: 40.060539,
    longitude: 116.343847,
    repairDetail: '',
  },
  onLoad({ id }) {
    console.log(id)
    // 根据id获取报修详情
    this.getRepairDetail(id)
  },
  //根据id发送请求获取报修详情信息
  async getRepairDetail(id) {
    const res = await wx.http({
      url: `/repair/${id}`,
    })
    console.log('res  ----->  ', res)
    //把获取到的报修详情赋值给data
    this.setData({
      repairDetail: res.data,
    })
    //把"金兴花园紫藤阁1432"格式转为纯中文
    this.transformChina(res.data.houseInfo)
  },
  //地址转坐标轴
  geocoder(address) {
    qqmap.geocoder({
      address,
      success: (res) => {
        console.log('res111  ----->  ', res)
        this.setData({
          // 把获取到的经纬度赋值回去
          latitude: res.result.location.lat,
          longitude: res.result.location.lng,
        })
      },
      fail: (err) => {
        console.log('err  ----->  ', err)
        wx.utils.toast('该地址暂无定位')
      },
    })
  },
  //封装转为纯文字的方法
  transformChina(value) {
    let name = /[\u4e00-\u9fa5]/g ///[\u4e00-\u9fa5]/中文校验 g代表全局校验
    let reg = value.match(name)
    console.log('reg  ----->  ', reg)
    const result = reg.join('') //把数组以空白符分割相连,不加东西默认是以,分割后相连
    console.log(' result ----->  ', result)

    // 转为中文后调用地址转坐标轴
    this.geocoder(result)
  },
  //跳转编辑页面
  goUpdateRepair() {
    // 带上id跳转 id之前获取详情的时候存进了repairDetail里面
    console.log('this.data.repairDetail.id  ----->  ', this.data.repairDetail.id)
    wx.navigateTo({
      url: '/repair_pkg/pages/form/index?id=' + this.data.repairDetail.id,
    })
  },
  //取消报修
  onCancelRepair() {
    // 取消报修类似于删除,为了防止用户误操作,我们弹窗提示框二次确认
    wx.showModal({
      title: '提示',
      content: '你确认要取消吗?',
      success: async (res) => {
        //注意这里的async才是离await最近一层的函数
        //这里要用箭头函数,因为需要用到this指向data里面的数据,如果用的是普通函数就无法指定
        // console.log('res  ----->  ', res)
        if (res.confirm) {
          // 如果res.confirm为true代表点击了确认, res.confirm为false代表点击了取消
          // 发请求取消维修
          const res = await wx.http({
            url: `/cancel/repaire/${this.data.repairDetail.id}`,
            method: 'put',
          })
          console.log('res  ----->  ', res)
          // 判断请求是否成功
          if (res.code !== 10000) {
            //代表请求错误
            // 提示用户
            wx.utils.toast(res.message)
            //并且退出函数下面代码不再指向
            return
          }
          //提示用户
          wx.showToast({
            title: '取消成功',
          })
          //跳转到维修列表页,利用延迟期延迟跳转,这样可以看到提示信息
          setTimeout(() => {
            wx.navigateTo({
              url: '/repair_pkg/pages/list/index',
            })
          }, 1500)
        }
      },
    })
  },
})
